/* 
1 页面加载的时候
  1 从缓存中获取购物车数据 渲染到页面中
    这些数据  checked=true 
2 微信支付
  1 哪些人 哪些帐号 可以实现微信支付
    1 企业帐号 
    2 企业帐号的小程序后台中 必须 给开发者 添加上白名单 
      1 一个 appid 可以同时绑定多个开发者
      2 这些开发者就可以公用这个appid 和 它的开发权限  
3 支付按钮
  1 先判断缓存中有没有token
  2 没有 跳转到授权页面 进行获取token 
  3 有token,进行下面操作
  4 创建订单 获取订单编号
  5 已经完成了微信支付
  6 手动删除缓存中 已经被选中了的商品 
  7 删除后的购物车数据 填充回缓存
  8 再跳转页面 
 */
import {
    getSetting,
    chooseAddress,
    openSetting,
    showModal,
    showToast,
    requestPayment
} from "../../utils/asyncWx.js";
import {
    request
} from "../../request/http";
Page({
    data: {
        address: {},
        cart: [],
        totalPrice: 0,
        totalNum: 0
    },
    onShow() {
        //渲染选中的数据
        let cart = wx.getStorageSync('cart')
        let address = wx.getStorageSync('address')
        //把选中的筛选出来
        cart = cart.filter(item => item.checked == true)
        let totalPrice = 0,
            totalNum = 0
        cart.forEach(item => {
            totalPrice += (item.goods_price * item.num)
            totalNum += item.num
        })
        this.setData({
            cart,
            address,
            totalPrice,
            totalNum
        })

    },
    // 点击 支付 
    async handleOrderPay() {
     //1.判断有没有token
      let token=wx.getStorageSync('token')
      if(!token){
           wx.navigateTo({
             url: '/pages/auth/index',
           })
         return false
      }
     //2.有token话-创建订单-  创建订单,要传参-订单总价,收货地址,所有要支付的商品信息
      request({url:'my/orders/create',method:'post',data:{order_price:'20',consignee_addr:'北京',goods:[{goods_id:11,goods_number:2,goods_price:10}]}}).then(res=>{
            console.log('创建订单成功',res);
             //3.传入订单编号，生成预支付订单
          let {order_number}=res.message
          request({url:'my/orders/req_unifiedorder',method:'post',data:{order_number}}).then(res1=>{
               console.log('预支付订单成功',res1);
                 //3.1 在第三方支付的服务器上,生成预支付订单
                  let {pay}=res1.message
                //4.拉起微信的支付窗口，如果有权限就弹出支付二维码，等待用户支付
                wx.requestPayment({
                    // timeStamp: '',
                    // nonceStr: '',
                    // package: '',
                    // signType: 'MD5',
                    // paySign1: '',
                    //用咱解构出来的,pay信息
                    ...pay,
                    success (res2) {
                          //因为咱开发者账号没权限，如果有权限的话，就会拉起二维码支付
                         console.log('拉起二维码支付成功',res2);

                     },
                    fail (err2) { 
                        //因为咱开发者账号没权限   requestPayment:fail no permission
                        console.log('拉起二维码支付失败',err2);
                       
                    }
                  })

                //5.查询订单支付状态，提醒用户是否支付成功
                request({url:'my/orders/chkOrder',method:'post',data:{order_number}}).then(res3=>{
                    console.log('用户已经支付成功与失败',res3);
                })

          }) 

      })


     //3.传入订单编号，生成预支付订单
    //3.1 在第三方支付的服务器上,生成预支付订单
     //4.拉起微信的支付窗口，如果有权限就弹出支付二维码，等待用户支付
    //5.查询订单支付状态，提醒用户是否支付成功
    }

})